Conventionally, in general, many video codecs, for example MPEG-4, H.264, VC-1, HEVC and VP9, are able to utilize previous frames for motion estimation of image blocks; these example codec names include trademarks. Motion estimation and motion compensation are executed block-by-block for each video image frame. Similarly, de-duplication methods or processing via use of databases can be used to utilize already coded data blocks or data packets when encoding a given current data block or data packet. Delta coding can be used for reducing entropy of data symbols present in video or similar types of content. ODelta coding, as will be elucidated in greater detail below, is also optionally used for further reducing entropy of data symbols. Moreover, ODelta coding makes it possible to reduce the entropy of individual bits; methods associated with ODelta coding will be described in greater detail later in APPENDIX 1. Both DPCM-style methods, namely Delta coding and ODelta coding, utilize previous data values when creating an encoded data value for an entropy encoder.
On account of the amount of data and its transfer are contemporarily increasing rapidly, a need for data compression is also increasing, and new and better methods are needed to improve the efficiency of data compression. The data can, for example, be captured from one or more sensors, for example images, video, audio, measurement data, or be various types of binary data, ASCII data and so forth; a mixture of captured sensor data and abstract data is also feasible.
There are multiple coding methods presently available when encoding data, but none of them offer a good enough compression ratio for all different kinds of data. When encoding a given current channel, frame, data block or data packet, there is often also a need to code different data channels or frames, for example color (English: “colour”), image channels, audio channels, parallel data measurement, separate images in video, separate packets in audio, 3D images, 3D audio and so forth, separately, while still utilizing information of already coded channels, frames, data blocks or data packets. Known data encoding methods are not sufficiently versatile for coping with input data, which has such a wide diversity of data structures therein.
Similarly, the spatial information that is already encoded is also beneficially utilized more efficiently for encoding than by using a known method such as DPCM (http://en.wikipedia.org/wiki/DPCM). There is also a need for simple, but efficient, encoding and decoding methods that enable lossless and lossy coding of data to be achieved. A method is provided via the ODelta method, as will be described in greater detail later in APPENDIX 1, but there is a need to utilize ODelta methods much more efficiently, for example in a manner that modifies typical known Delta coding, making Delta coding from DPCM suitable also to be used with different predictors. Such an approach enables better entropy reduction for negative and positive differences, or sum, values for symbols than conventional known Delta coding as in, for example, DPCM.
There is a lack of known methods that are able to combine both properties, namely data reutilization by employing advanced prediction methods and efficient entropy reduction of residual data with or without quantization, by delivering or storing only the method selection, namely for frame, channel, data block or data packet, and the encoded residual values, namely without any motion vectors, selection symbols or database references. Sometimes, even the residual coding is not needed, because:    (i) the prediction is perfect;    (ii) the residual is constant for all data values, and one value is enough to deliver it; or    (iii) the residual with or without quantization is below an error threshold based on a quality parameter.